Soft error caused by single event upset has been a severe challenge to aerospace-based computing. Silent data corruption (SDC) is\none of the results incurred by soft error. SDC occurs when a program generates erroneous output with no indications. SDC is the\nmost insidious type of results and very difficult to detect. To address this problem, we design and implement an invariant-based\nsystem called Radish. Invariants describe certain properties of a program; for example, the value of a variable equals a constant.\nRadish first extracts invariants at key program points and converts invariants into assertions. It then hardens the program by\ninserting the assertions into the source code.When a soft error occurs, assertions will be found to be false at run time and warn the\nusers of soft error. To increase the coverage of SDC, we further propose an extension of Radish, named Radish D, which applies\nsoftware-based instruction duplication mechanism to protect the uncovered code sections. Experiments using architectural fault\ninjections show that Radish achieves high SDC coverage with very low overhead. Furthermore, Radish D provides higher SDC\ncoverage than that of either Radish or pure instruction duplication.
Loading....